package dp;
import md.CategoriaMD;
import java.util.*;
import java.sql.*;
/***********************************************************************
 * Module:  CategoriaDP.java
 * Author:  Shalom Martinez
 * Purpose: Defines the Class CategoriaDP
 ***********************************************************************/

import java.util.*;

public class CategoriaDP {
   private int codigoCategoria;
   private String tipoCategoria;
   private String descripcionCategoria;
   private String loginCategoria;
  // private CategoriaMD categoriaMD;
    CategoriaMD categoriaMD =new CategoriaMD(this);

   /*Constructor de la clase*/
    public CategoriaDP() {
        this.codigoCategoria = -1;
        this.tipoCategoria = "";
        this.descripcionCategoria= "";
    }




     /***************************************
     * Getters & Setters
     ***************************************/



   public int getCodigoCategoria() {
      return codigoCategoria;
   }

   public void setCodigoCategoria(int newCodigoCategoria) {
      codigoCategoria = newCodigoCategoria;
   }


   public String getTipoCategoria() {
      return tipoCategoria;
   }


   public void setTipoCategoria(String newTipoCategoria) {
      tipoCategoria = newTipoCategoria;
   }


   public String getDescripcionCategoria() {
      return descripcionCategoria;
   }


   public void setDescripcionCategoria(String newDescripcionCategoria) {
      descripcionCategoria = newDescripcionCategoria;
   }

   public String getLoginCategoria() {
      return loginCategoria;
   }


   public void setLoginCategoria(String newLoginCategoria) {
      loginCategoria = newLoginCategoria;
   }

    public List getconsultaCategoria() {
      return categoriaMD.consultarCategoriaGeneral();
    }

    /**
     * Método para ingresar un nueva categoria
     *
     * @return Devuelve TRUE si es que se ingresa correctamente el registro en
     * la BDD.
     */
   public boolean ingresarCategoria() {
      boolean retorno=false;

      if(verificarCategoria()==false){
          retorno=categoriaMD.ingresarCategoria(this.codigoCategoria,this.tipoCategoria,this.descripcionCategoria );
      }
      return retorno;
   }
 /**
     * Método para modificar una  categoría
     *
     * @return Devuelve TRUE si es que se puede modificar correctamente el registro en
     * la BDD.
     */
   public boolean modificarCategoria() {
      boolean retorno=false;
      retorno=this.categoriaMD.modificarCategoria(this.tipoCategoria,this.descripcionCategoria,this.codigoCategoria );
      return retorno;
   }
 /**
     * Método para eliminar una categoría
     *
     * @return Devuelve TRUE si es que se elimina correctamente el registro en
     * la BDD.
     */
   public boolean eliminarCategoria() {
      boolean retorno = false;
      retorno=this.categoriaMD.eliminarCategoria(this.codigoCategoria);
      return retorno;
   }

 /**
     * Método para consultar categoría General
     *
     * @return Devuelve una Lista con los datos de la tabla Categoria
     *  si se pued obtener correctamente los datos de la BDD.
     */
  public  List<String[]> consultarCategoriaGeneral() {
     return categoriaMD.consultarCategoriaGeneral();
   }

    public  String[] consultarCategoriaParametros() {
     return categoriaMD.consultarCategoriaParametros(this.codigoCategoria);
   }

 /**
     * Método para verificar una categoría
     *
     * @return Devuelve TRUE si es que la categoria existe en
     * la BDD.
     */
   public boolean verificarCategoria() {
       boolean retorno=false;
       retorno=categoriaMD.verificarCategoria();
       return retorno;
   }
    /**
     * Método para obtener los datos de categoria
     *
     * @return Devuelve arreglo String con los datos de
     * la BDD.
     */
 public String[] regresarDatos() {


        return this.categoriaMD.regresarDatos(this.codigoCategoria);

    }
}
